<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link type="text/css" rel="stylesheet" href="styles.css">
  <script type="text/javascript" src="config.js"></script>
</head>

<body>
  <h1 class="h">2. 创建数组</h1>
  <dl>
    <dt>1. 创建第一个数组</dt>
    <dd>
      创建数组最基本的方法就是使用np.array()函数，把一个列表放进去。
      <pre><code># 从列表创建一维数组
list1 = [1, 2, 3, 4, 5]
arr1 = np.array(list1)
print(arr1)
# 输出：[1 2 3 4 5]
print(type(arr1))
# 输出：&lt;class 'numpy.ndarray'&gt;</code></pre>
      <strong>注意：</strong>打印数组时，元素之间没有逗号，这是Numpy数组的显示特点。
      <pre><code># 从嵌套列表创建二维数组（可以想象成一个矩阵或表格）
list2 = [[1, 2, 3], [4, 5, 6]]
arr2 = np.array(list2)
print(arr2)
# 输出：
# [[1 2 3]
#  [4 5 6]]</code></pre>
    </dd>
    <dt>2. 常用的一些创建数组函数</dt>
    <dd>
      NumPy 提供了很多快捷函数。
      <pre><code># 创建全是 0 的数组
zeros_arr = np.zeros(5) # 创建长度为5的一维数组，全是0.0
print(zeros_arr) # [0. 0. 0. 0. 0.]

zeros_arr2d = np.zeros((3, 4)) # 创建3行4列的二维数组，全是0.0
print(zeros_arr2d)

# 创建全是 1 的数组
ones_arr = np.ones((2, 3)) # 创建2行3列的数组，全是1.0
print(ones_arr)

# 创建一个“空”数组（里面的值是内存中的随机值，不确定）
empty_arr = np.empty((2, 2))
print(empty_arr)

# 创建等差数组 (非常重要！)
# np.arange(起点， 终点， 步长) 类似Python的range()
arr_range = np.arange(0, 10, 2) # 从0开始，到10结束（不包括10），步长为2
print(arr_range) # [0 2 4 6 8]

# np.linspace(起点， 终点， 等分数)
arr_lin = np.linspace(0, 100, 5) # 从0到100，等分成5个数
print(arr_lin) # [ 0.  25.  50.  75. 100.]

# 创建单位矩阵（对角线为1，其余为0的方阵）
eye_arr = np.eye(3)
print(eye_arr)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]</code></pre>
    </dd>
    <dt>3. 数组的属性（了解它的基本信息）</dt>
    <dd>
      创建数组后，我们经常需要知道它的属性。
      <pre><code>arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

print(arr.ndim)   # 数组的维度（轴数）。输出：2 （这是一个二维数组）
print(arr.shape)  # 数组的形状。输出：(3, 4) （3行4列）
print(arr.size)   # 数组的元素总数。输出：12 （3*4=12）
print(arr.dtype)  # 数组中元素的数据类型。输出：int64 （64位整数）</code></pre>
    </dd>
  </dl>
</body>

</html>